-
Notifications
You must be signed in to change notification settings - Fork 0
Develop #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Develop #10
Conversation
…w UI Introduced separate UserControls for profile, security, notification, and application settings, each with their own XAML and code-behind. Updated SettingsView.xaml to use a ContentControl that switches between these views based on selected RadioButton, and refactored membership plan descriptions to English. Added a modern CheckBox style and registered new views in the dependency injection container.
…ew models Introduced new ViewModels for profile, security, notification, and app settings, and updated SettingsViewModel to manage navigation between them. Added enums for appearance, currency, and notification types, and a model for notification settings. Refactored XAML views to bind to new ViewModels and use data templates for dynamic content. Improved dependency injection setup and updated UI bindings for better MVVM compliance.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a full settings UI (Profile, Security, Notifications, App), registers the new view models and views for DI, and enhances membership plan cards and checkbox styles.
- Introduces DataTemplates and navigation in
SettingsView.xaml - Creates content views and view models for each settings page
- Binds membership selection commands and adds a modern checkbox style
- Registers all new components in
App.xaml.cs
Reviewed Changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| FinTrack/Views/SettingsView.xaml | Added settings navigation templates and updated membership cards with bindings |
| FinTrack/Views/SecuritySettingsContentView.xaml.cs | New code‐behind for security settings view |
| FinTrack/Views/SecuritySettingsContentView.xaml | New XAML for security settings layout |
| FinTrack/Views/ProfileSettingsContentView.xaml.cs | New code‐behind for profile settings view |
| FinTrack/Views/ProfileSettingsContentView.xaml | New XAML for profile settings layout |
| FinTrack/Views/NotificationSettingsContentView.xaml.cs | New code‐behind for notification settings view |
| FinTrack/Views/NotificationSettingsContentView.xaml | New XAML for notification settings layout |
| FinTrack/Views/AppSettingsContentView.xaml.cs | New code‐behind for app settings view |
| FinTrack/Views/AppSettingsContentView.xaml | New XAML for app settings layout |
| FinTrack/ViewModels/SettingsViewModel.cs | Updated to manage page switching and membership buttons |
| FinTrack/ViewModels/SecuritySettingsContentViewModel.cs | New view model for security settings |
| FinTrack/ViewModels/ProfileSettingsContentViewModel.cs | New view model for profile settings |
| FinTrack/ViewModels/NotificationSettingsContentViewModel.cs | New view model for notification settings |
| FinTrack/ViewModels/AppSettingsContentViewModel.cs | New view model for app settings |
| FinTrack/Styles/ModernStyles.xaml | Added ModernCheckBoxStyle |
| FinTrack/Models/Settings/NotificationSettingItemModel.cs | New model for notification settings items |
| FinTrack/Enums/NotificationSettingsType.cs | New enum for notification categories |
| FinTrack/Enums/BaseCurrencyType.cs | New enum for supported currencies |
| FinTrack/Enums/AppearanceType.cs | New enum for appearance modes |
| FinTrack/App.xaml.cs | Registered new views and view models in DI container |
Comments suppressed due to low confidence (6)
FinTrack/ViewModels/AppSettingsContentViewModel.cs:17
- [nitpick] The property
isFirstOpeningis unclear. Consider renaming tolaunchOnStartupor similar to reflect its purpose (start app with OS).
private bool isFirstOpening = true;
FinTrack/Views/AppSettingsContentView.xaml:23
- The ViewModel does not declare a
SelectedAppearanceTypeproperty, and using Mode=OneWay prevents UI selection from updating the ViewModel. Add aSelectedAppearanceTypeproperty to the ViewModel and change the binding to Mode=TwoWay.
ItemsSource="{Binding AppearanceTypes}" SelectedItem="{Binding SelectedAppearanceType, Mode=OneWay}">
FinTrack/Views/AppSettingsContentView.xaml:33
- The ViewModel does not declare a
SelectedCurrencyTypeproperty, and using Mode=OneWay prevents user selection from persisting. Add aSelectedCurrencyTypeproperty to the ViewModel and change the binding to Mode=TwoWay.
ItemsSource="{Binding CurrencyTypes}" SelectedItem="{Binding SelectedCurrencyType, Mode=OneWay}">
FinTrack/Views/NotificationSettingsContentView.xaml:27
- The model defines
IsEnabled, notIsSelected, so this binding will fail. Update the binding toIsChecked="{Binding IsEnabled, Mode=TwoWay}".
IsChecked="{Binding IsSelected, Mode=TwoWay}"
FinTrack/ViewModels/NotificationSettingsContentViewModel.cs:1
- LINQ methods (
Where,Select) are used butusing System.Linq;is missing, causing compilation errors. Addusing System.Linq;at the top.
using CommunityToolkit.Mvvm.ComponentModel;
FinTrack/ViewModels/SettingsViewModel.cs:86
- [nitpick] The status text uses Turkish (
Seçili), but the UI content elsewhere is in English. Extract strings into resources and ensure consistent localization.
FreeButtonStatus = "Seçili";
This pull request introduces a series of changes to enhance the functionality and user experience of the FinTrack application. The updates primarily focus on adding new settings-related features, creating corresponding view models and views, and improving the styling of UI components. Below is a categorized summary of the most important changes:
Settings Feature Enhancements:
ProfileSettingsContentViewModel,SecuritySettingsContentViewModel,NotificationSettingsContentViewModel, andAppSettingsContentViewModel) and theSettingsViewtoConfigureServicesinFinTrack/App.xaml.cs.AppSettingsContentViewModelto manage application appearance and currency settings, including initialization logic and a save command.NotificationSettingsContentViewModelto handle notification preferences, such as desktop notifications and email settings.ProfileSettingsContentViewModelto manage user profile information like name, email, and profile photo.SecuritySettingsContentViewModelfor handling password changes.Enum and Model Additions:
AppearanceTypeenum for light, dark, and system default modes.BaseCurrencyTypeenum for supported currencies like USD, EUR, and GBP.NotificationSettingsTypeenum for notification categories such as spending limit warnings and weekly summaries.NotificationSettingItemModelto represent individual notification settings with type and enabled status.UI and Styling Improvements:
ModernCheckBoxStyleto improve the appearance of checkboxes across the application.AppSettingsContentView.xamland its code-behind file to display and manage application settings, including appearance and currency options. [1] [2]Settings Navigation:
SettingsViewModelto support navigation between different settings pages (Profile,Security,Notifications, andApp) using a command.